package controllers;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import models.MensagemMO;
import play.mvc.Controller;

/**
 * Controller responsável por armazenar as mensagens recebidas no datastore
 */
public class SMSGateway extends Controller {
	private static final DateFormat DATEFORMAT = new SimpleDateFormat(
			"EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);

	public static void submitMO() throws Exception {
		MensagemMO novaMensagem = new MensagemMO();

		setDate(novaMensagem);
		setOriginator(novaMensagem);
		setContent(novaMensagem);

		novaMensagem.insert();
	}

	private static void setContent(MensagemMO novaMensagem) {
		novaMensagem.setContent(params.get("text"));
	}

	private static void setOriginator(MensagemMO novaMensagem) {
		String originatorStr = params.get("originator");

		if (originatorStr.startsWith(" "))
			originatorStr = "+" + originatorStr.trim();

		novaMensagem.setOriginator(originatorStr);
	}

	private static void setDate(MensagemMO novaMensagem) throws ParseException {
		novaMensagem.setDateTime(new Date());

		try {
			String dateString = params.get("date", String.class);

			novaMensagem.setDateTime(DATEFORMAT.parse(dateString));
		} catch (Exception exc) {

		}
	}
}
